Security systems protect people, property, and reduce crime for homeowners and businesses alike and have become an increasingly cost-effective tool to reduce risk. These systems have multiple components, such as server systems, display devices, and security devices that communicate over a security network. These security devices include monitoring points, video cameras for capturing live video of an area of interest, physical access control devices such as key pads and card readers, and a variety of sensor devices installed within and at entry and exit points for premises.
Since the rise of web-based management technologies, operators of the security systems typically view and manage the security devices and their information using security management applications installed on servers connected to the security network. The applications are accessible from client devices. The client devices are either directly connected to the security network, or in web-based environments, are located in other networks. Typically, the client devices were workstations that met or exceeded the resource requirements of the applications.
Increasingly, operators of security systems are managing their security networks in web-based environments using mobile computing devices such as smart phones, laptops, and tablets. These user devices typically cost less than workstations, and their mobility enables greater access to the security network than workstations. However, mobile devices, as a general rule, have more limited resources such as memory, screen size, and processing power as compared to workstations.
As a result, security operators are extending the functionality of existing applications using applets. These are smaller, feature-specific applications executed by a web browser. Unlike stand-alone applications, which reside on the client user device, applets are downloaded to the user devices over the network.
Java is a registered trademark of Oracle Corporation. Oracle associates the Java trademark with its eponymous computer programming language, and related infrastructure and tools. As a programming language, Java enables application developers to create general-purpose, machine-independent applications. The Java programming language is especially suited for client-server, web based applications.
Developers typically write applets using the Java programming language. As a result, such applets are also typically referred to as “Java applets”. Applets also typically utilize fewer resources, such as memory, than stand-alone Java applications.
In web-based environments, applets are used to provide features to web-based applications that cannot be provided by HTML alone. Applets reside on servers within the security network, and are included within HTML pages on the server. Because the applets are referenced within HTML pages, these are also known as embedded applets. Web browsers on the client user devices request the HTML pages that include the applets.
Applets execute in the context of web browsers on client user devices within the memory space of a program known as a Java Virtual Machine (“JVM”). The JVM memory space is separate from that used by the other programs and the operating system on the user devices. Moreover, the JVM provides a separate “sandbox” for each applet that prevents the applet from interacting with client system resources such as the local file system, unless authorized.
Applets do not inherit authentication credentials from the web browser they are running within. Applets that make use of resources on a network, if necessary, must authenticate themselves independently of the web browser and the HTML pages that they are embedded within.